package com.xoa.controller.guideGoal;

import com.xoa.model.guideGoal.GuideGoal;
import com.xoa.service.guideGoal.GuideGoalService;
import com.xoa.util.ToJson;
import com.xoa.util.treeUtil.TreeGirdNode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * Created by 张丽军 on 2017/7/28.
 * 数据接口控制类
 */
@RestController
@RequestMapping("/dljSupervision")
public class GuideGoalController {
    @Autowired
    GuideGoalService guideGoalService;

    /**
     *
     *
     * 创建作者:   张丽军
     * 创建日期:   2017年7月28日 下午15:30:00
     * 方法介绍:   督办管理查询信息列表根据typeId(**********)
     * 参数说明:   @param typeId
     * 参数说明:   @return
     * @param request
     * @param typeId
     * @return
     */
    @ResponseBody
    @RequestMapping("/getSupManageListByTypeId")
    public ToJson<GuideGoal> getSupManageByTypeId(HttpServletRequest request, Integer typeId, Integer page, Integer pageSize, Boolean useFlag){
        return guideGoalService.getSupManageByTypeId(request,typeId,page,pageSize,useFlag);
    }

    /**
     * 创建作者:   张丽军
     * 创建日期:   2017年7月28日 下午15:30:00
     * 方法介绍:   督办管理查询typeName分类名称(树结构包括权限)(*************)
     * 参数说明:   @param
     * @param request
     * @param guideGoal
     * @return
     */
    @ResponseBody
    @RequestMapping("/getSupManageMenu")
    public ToJson<TreeGirdNode> getSupManageMenu(HttpServletRequest request, GuideGoal guideGoal){
        return guideGoalService.getSupManageMenu(request, guideGoal);
    }

    /**
     * 创建作者:   张丽军
     * 创建日期:   2017年7月28日 下午15:30:00
     * 方法介绍:   督办管理新建接口(************)
     * @param request
     * @param guideGoal
     * @return
     */
    @ResponseBody
    @RequestMapping("/addSupervision")
    public ToJson<GuideGoal> addSupervision(HttpServletRequest request, GuideGoal guideGoal){
        return guideGoalService.addSupervision(request, guideGoal);
    }

    /**
     * 创建作者:   张丽军
     * 创建日期:   2017年7月28日 下午15:30:00
     * 方法介绍:   督办管理修改接口(************)
     * @param request
     * @param guideGoal
     * @return
     */
    @ResponseBody
    @RequestMapping("/updateSupervision")
    public ToJson<GuideGoal> updateSupervision(HttpServletRequest request, GuideGoal guideGoal){
        return guideGoalService.updateSupervision(request, guideGoal);
    }

    /**
     * 创建作者:   张丽军
     * 创建日期:   2017年7月31日 下午15:30:00
     * 方法介绍:   督办删除接口(***********)
     * @param request
     * @param sid
     * @return
     */
    @ResponseBody
    @RequestMapping("/deleteSupervisionBySid")
    public ToJson<GuideGoal> deleteSupervisionBySid(HttpServletRequest request, Integer sid){
        return guideGoalService.deleteSupervisionBySid(request,sid);
    }

    /**
     * 创建作者:   张丽军
     * 创建日期:   2017年7月31日 下午15:30:00
     * 方法介绍:   督办统计查询列表接口
     * @param request
     * @param sid
     * @return
     */
    @ResponseBody
    @RequestMapping("/selectCountList")
    public  ToJson<GuideGoal> selectCountList(HttpServletRequest request, Integer sid, String beginDate, String endDate, String typeId){
        Map<String, String> mapParamter = new HashMap<String, String>();
        Map<String, String[]> paramMap = request.getParameterMap();

        Iterator<String> iKeys = paramMap.keySet().iterator();
        while (iKeys.hasNext()) {
            String key = iKeys.next();
            String[] value = paramMap.get(key);
            if (value != null && value.length > 0) {
                mapParamter.put(key, value[0]);
            }else {
                mapParamter.put(key, "");
            }
        }

            return guideGoalService.selectCountList(mapParamter,sid,beginDate,endDate,typeId);
    }

    /**
     * 创建作者：张丽军
     * 方法介绍：督办任务(督办管理)详情(**************)
     * @param request
     * @param sid
     * @return
     */
    @ResponseBody
    @RequestMapping("/getSupAssistDetail")
    public ToJson<GuideGoal> getSupAssistDetail(HttpServletRequest request, Integer sid, @RequestParam(value = "bodyId", required = false)String bodyId){
    	
        return guideGoalService.getSupAssistDetail(request,sid,bodyId);
    }



    /**
     * 作者：张丽军
     * 方法介绍：督办任务查询列表（*********）
     * @param request
     * @return
     */
    @ResponseBody
    @RequestMapping("/getSupApplyTaskList")
    public ToJson<GuideGoal> getSupApplyTaskList(Integer status, Integer sid, HttpServletRequest request){
        return guideGoalService.getSupApplyTaskList(status,sid,request);
    }
    /**
     * 作者：张丽军
     * 方法介绍：更新督查督办状态（*********）
     * @param request
     * @return
     */
    @ResponseBody
    @RequestMapping("updateSupStatus")
    public ToJson<GuideGoal> updateSupStatus(GuideGoal guideGoal, HttpServletRequest request){
        return guideGoalService.updateSupStatus(guideGoal,request);
    }
}
